package g

// @lc code=start

/*
 * @lc app=leetcode.cn id=104 lang=golang
 *
 * [104] 二叉树的最大深度
给定一个二叉树，找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
*/

// @lc code=start
/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
//          1
//         / \
//        2   3
//       / \
//      4   5
//     /     \
//    6       8
//     \       \
//      7       9
// return 5
func maxDepth(root *TreeNode) int {
	if root == nil {
		return 0
	}
	lMax := maxDepth(root.Left)
	rMax := maxDepth(root.Right)
	return max(lMax, rMax) + 1
}

func max(x, y int) int {
	if x > y {
		return x
	}
	return y
}

// @lc code=end
